package com.gxc.integer;

/**
 * 600. 不含连续1的非负整数

 * 给定一个正整数 n ，请你统计在 [0, n] 范围的非负整数中，有多少个整数的二进制表示中不存在 连续的 1 。
 */
public class FindIntegers {

    public static void main(String[] args) {
        System.out.println(handle(5));
        System.out.println(handle(2));
        System.out.println(handle(3));
    }

    public static int handle(int n) {
        int sum = n + 1;
        int base = 4;
        while (n >= base-1) {
            sum--;
            base = base * 2;
        }
        return sum;
    }
}
